﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SportsPlatform.Query.CompetitionProjec
{
    /// <summary>
    /// 客户端赛事项目信息同步请求
    /// </summary>
    public class CompetitionPorjectSynchronizationQuery
    {
        /// <summary>
        /// 主键
        /// </summary>
        public Guid Id { get; set; }

        /// <summary>
        /// 所属赛事
        /// </summary>
        public Guid CompetitionId { get; set; }

        /// <summary>
        /// 项目名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 项目类型
        /// </summary>
        public Guid ProjectId { get; set; }

        /// <summary>
        /// 比赛类型
        /// </summary>
        public int GameType { get; set; }

        /// <summary>
        /// 成绩计算规则
        /// </summary>
        public Guid CalculationRule { get; set; }

        /// <summary>
        /// 成绩惩罚规则
        /// </summary>
        public Guid PunishmentRule { get; set; }

        /// <summary>
        /// 比赛日期
        /// </summary>
        public DateTime? GameDate { get; set; }

        /// <summary>
        /// 比赛开始时间
        /// </summary>
        public DateTime GameBeginTime { get; set; }

        /// <summary>
        /// 比赛结束时间
        /// </summary>
        public DateTime GameEndTime { get; set; }

        /// <summary>
        /// 比赛时长（分钟）
        /// </summary>
        public int GameTime { get; set; }

        /// <summary>
        /// 最多感应器数量
        /// </summary>
        public int? SensorsMaxNum { get; set; }

        /// <summary>
        /// 团队最多人数
        /// </summary>
        public int? TeamMaxUserNum { get; set; }

        /// <summary>
        /// 报名限制（1：允许单人报名；2：不允许单人报名）
        /// </summary>
        public int SignUpLimit { get; set; }

        /// <summary>
        /// 组队限制（1：允许现场组队；2：不允许现场组队）
        /// </summary>
        public int GroupLimit { get; set; }

        /// <summary>
        /// 报名费用
        /// </summary>
        public decimal? CostMoney { get; set; }

        /// <summary>
        /// 费用类型（1：元/人；2：元/队）
        /// </summary>
        public int? CostType { get; set; }

        /// <summary>
        /// 是否免费
        /// </summary>
        public bool IsFree { get; set; }

        /// <summary>
        /// 项目举办地点
        /// </summary>
        public string Address { get; set; }

        /// <summary>
        /// 项目比赛场馆
        /// </summary>
        public string Stadium { get; set; }

        /// <summary>
        /// 比赛详细地址
        /// </summary>
        public string DetailsAddress { get; set; }

        /// <summary>
        /// 详细地址坐标点
        /// </summary>
        public string Point { get; set; }

        /// <summary>
        /// 项目咨询人
        /// </summary>
        public string Consultant { get; set; }

        /// <summary>
        /// 咨询电话
        /// </summary>
        public string TelePhone { get; set; }

        /// <summary>
        /// 状态（0：关闭；1：待报名；2：正在报名；3：待分组；4：待签到；5：正在比赛；6：比赛结束）
        /// </summary>
        public int State { get; set; }

        /// <summary>
        /// 个人赛报名人数最大限制
        /// 团队赛不需要
        /// </summary>
        public int MaxEmployeeNum { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public Guid CreateUserId { get; set; }

        /// <summary>
        /// 更改时间
        /// </summary>
        public DateTime? UpdateTime { get; set; }

        /// <summary>
        /// 更改人
        /// </summary>
        public Guid? UpdateUserId { get; set; }

        /// <summary>
        /// 删除时间
        /// </summary>
        public DateTime? DeleteTime { get; set; }

        /// <summary>
        /// 是否删除
        /// </summary>
        public bool IsDeleted { get; set; }

        /// <summary>
        /// 删除人
        /// </summary>
        public Guid? DeleteUserId { get; set; }
    }
}
